# -*- coding:utf-8 -*-
# @Time : 2022/11/18 21:49
# @Author : 谢天


class AppConfig:
    def __init__(self):
        self.ship_routes = {}  # 存储航线数据 {LNN: {points, length, start_point, end_point}}
        # 各操作标记参数
        self.range_control = 0   # 标记画布范围是否被改动过
        self.addbj = 0
        self.delbj = 0
        self.chabj = 0
        self.rtcha = 0
        self.conmouse = 0
        self.ys_ss = 'ss'
        
        # 数据处理相关数据结构
        self.notemenu = []    # 断面存储列表
        self.notesection = []  # 下拉框显示目录，关联断面序号
        self.dmnum = 0  # 断面序号
        self.scrpoint = 20  # 点间隔距离
        self.Retracebox = []  # 回撤栈存储列表
        self.Remove_source = []  # 回撤时，删除点位置追踪存
        
        # 保证刷新后保持缩放状态的参数
        self.press2 = 0
        self.lastx = 0
        self.lasty = 0
        self.new_xstart = 0
        self.new_xend = 0
        self.new_ystart = 0
        self.new_yend = 0
        
        # 与成图据相关的数据结构
        self.line_numbers = {}
        self.ys_ZZFIX = {}
        self.XH = {}
        self.EC1 = {}
        self.fix = {}
        self.add = {}
        self.ysdel = {}
        self.POS = {}
        self.FIX = {}
        self.ADD = {}
        self.CHA = {}
        self.dfEC1 = {}
        self.dfFIX = {}
        self.ZZFIX = {}
        self.dfADD = {}
        self.dfDEL = {}
        self.dfCHA = {}
        self.ytfx = []  # 控制是否显示原图
        
        # 多波束数据处理相关参数
        self.multi_beam_data = {}  # 存储处理后的多波束数据，以断面索引为键
        self.tiff_data = None  # 存储加载的TIFF高程数据
        self.tiff_geotransform = None  # 存储TIFF的地理转换信息，用于坐标转换
        self.tiff_projection = None  # 存储TIFF的投影信息
        self.tiff_no_data_value = None  # 存储TIFF的NoData值，用于识别无效数据
        self.tiff_width = 0  # TIFF文件的宽度
        self.tiff_height = 0  # TIFF文件的高度
        self.multi_beam_sections = []  # 存储读取的断面线信息
        self.current_section_index = -1  # 当前正在处理的断面索引，-1表示没有

        #单波束和单波束检查线所需要的数据结构
        self.single_beam_data = {}
        
        # 单波束和单波束检查线的参数
        self.single_beam_check_line = {} # 存储单波束检查线的信息
